package org.hamcrest.collection; import org.hamcrest.Description; import org.hamcrest.Factory; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; /** * Tests if collection is empty. */ public class IsEmptyIterable<E> extends TypeSafeMatcher<Iterable<E>> { @Override public boolean matchesSafely(Iterable<E> iterable) { return !iterable.iterator().hasNext(); } @Override public void describeMismatchSafely(Iterable<E> iter, Description mismatchDescription) { mismatchDescription.appendValueList("[", ",", "]", iter); } public void describeTo(Description description) { description.appendText("an empty iterable"); } /** * Matches an empty iterable. */ @Factory public static <E> Matcher<Iterable<E>> emptyIterable() { return new IsEmptyIterable<E>(); } }